package cn.itcast.dao.system;

import cn.itcast.domain.system.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserDao {

    //查询所有用户一定要根据当前登陆者企业id
    List<User> findAll(String companyId);

    //根据id 查询当前用户
    User findById(String id);
    //保存用户
    void save(User user);

    //更新用户
    void update(User user);

    //根据用户的id查找用户的角色个数
    long findUserRoleByUserId(String id);

    //删除用户
    void delete(String id);

    //1. 先删除用户的角色
    void deleteUserRoleByUserId(String userid);

    //2. 给当前用户添加对应角色
    void addUserRoles(@Param("userId") String userId, @Param("roleIds") String[] roleIds);

    //根据邮箱查找用户
    User findByEmail(String email);

    User findByUserName(String username);
}
